Modern computing devices have become ubiquitous tools for personal, business, and social uses. As such, many modern computing devices are capable of connecting to various data networks, including the Internet and corporate intranets, to transmit and receive data communications over the various data networks at varying rates of speed. To facilitate communications between remotely located computing devices, the data networks typically include one or more network computing devices (e.g., network switches, network routers, servers, other compute and/or store computing devices, etc.) to process and route network communications (i.e., network packets) through the data network. Certain network infrastructures, such as data centers, may include tens of thousands or more of such computing devices deployed in parallel and/or distributed computing architectures (e.g., a high performance computing (HPC) network architecture) capable of high-speed, low-latency interconnectivity, such as a cluster computing network architecture and/or a grid computing network architecture (e.g., a fabric computing network architecture).
Applications (i.e., threads, processes, etc.) running on such vast network infrastructures may become blocked while waiting for locally issued communication operation(s) to complete or while waiting for data to arrive as the result of a remotely performed communication operation, for example. The blocked thread can be unscheduled by a scheduler (i.e., a system thread/process scheduler), which can then schedule a ready thread to execute on the resources previously occupied by the unscheduled blocked thread. Conventional approaches to thread scheduling utilize software schedulers, which typically use software techniques to determine whether pending threads have become ready for execution. Additional software techniques may utilize polling, memory monitoring, or interrupt-based notifications to indicate that communication operations have completed or that data has been written to local memory of the computing device. However, such software techniques can generate significant software-attributable overhead and/or impact locality in memory of the computing device.